Skip to Tutorial Content

Endereço das Planilhas

Dicionario de Dados Agregados por Setor Censitário

Censo 2022 - Dados de Alfabetização por Município

Censo 2010 - Dados de Alfabetização do Brasil

No site do IBGE não encontrei os dados de alfabetização por município em um único banco de dados. Teria que pegar, município por município! Ao clicar no link fazemos o download de uma pasta em formato .zip com diversas planilhas comprimidas. Utilizei a planilha tab1_1_1.xls, esta contém os dados de alfabetização do Brasil observados em 2010.

Publicação do IBGE Com Resultados Relacionados a Alfabetização

É apresentada aqui uma breve análise dos resultados do quesito sobre alfabetização presente no Questionário Básico do Censo Demográfico de 2022. Para tanto, recorre-se ao indicador de taxa de alfabetização das pessoas de 15 anos ou mais de idade e ao seu complemento, taxa de analfabetismo das pessoas de 15 anos ou mais de idade, conforme sugerido pelo documento “Princípios e Recomendações para os Censos Populacionais”, elaborado pela Divisão de Estatística da ONU. Os resultados são analisados em seis seções: desagregações por grupos de idade, cor ou raça, sexo, tamanho dos municípios, regiões geográficas e pessoas indígenas.

Os resultados do Censo Demográfico 2022 mostram que, no País, havia 163 milhões de pessoas de 15 anos ou mais de idade, das quais 151,5 milhões sabiam ler e escrever um bilhete simples e 11,4 milhões não sabiam sequer ler e escrever um bilhete simples. A partir desses totais populacionais, a taxa de alfabetização foi 93,0% em 2022 e, consequentemente, a taxa de analfabetismo foi 7,0% deste contingente populacional.

Leitura dos Dados

library("tidyverse")
library("data.table")
library("abjutils")
url <- "https://raw.githack.com/fsbmat-ufv/Censo2022/refs/heads/main/Dados/Agregados_por_municipios_alfabetizacao_BR.csv"

dt <- fread(url,
            encoding = "Latin-1",
            sep = ";",
            header = TRUE, verbose = F)

#dt <- dt %>% select(c(1, 3:15, 107:119))
#names(dt)
#dt$NM_MUN <- str_trim(dt$NM_MUN) #Remove espacos em Branco
#dt$NM_MUN <- str_to_upper(dt$NM_MUN) #Caixa Alta
#dt$NM_MUN <- rm_accent(dt$NM_MUN) #Remove acentos
#Coluna Total Brasil

dt <- dt %>%
        mutate(Total = rowSums(select(., V00644:V00656)))
Total <- dt %>% select(Total) %>% summarise(sum(Total))
#Coluna Total de Alfabetizados do Brasil

dt <- dt %>%
        mutate(Alfab = rowSums(select(., V00748:V00760)))
Alfab <- dt %>% select(Alfab) %>% summarise(sum(Alfab))

#Coluna 65 anos ou mais por cidade

dt <- dt %>%
        mutate(V06599 = rowSums(select(., V00654, V00655, V00656)))

#Coluna 65 anos ou mais por cidade de alfabetizados
dt <- dt %>%
        mutate(V07599 = rowSums(select(., V00758, V00759, V00760)))

#Taxa de Analfabetismo por Cidade por faixa etaria
# dt[dt == 'X'] <- 0
# str(dt$V00644)
# dt$V00644 <- as.numeric(as.character(dt$V00644))
Total1519 <- sum(dt$V00644)
dt$alf1519 <- round(100*((dt$V00644-dt$V00748)/dt$V00644), digits = 1)
dt$alf2024 <- round(100*((dt$V00645-dt$V00748)/dt$V00645), digits = 1)
dt$alf2529 <- round(100*((dt$V00646-dt$V00748)/dt$V00646), digits = 1)
dt$alf3034 <- round(100*((dt$V00647-dt$V00748)/dt$V00647), digits = 1)
dt$alf3539 <- round(100*((dt$V00648-dt$V00748)/dt$V00648), digits = 1)
dt$alf4044 <- round(100*((dt$V00649-dt$V00748)/dt$V00649), digits = 1)
dt$alf4549 <- round(100*((dt$V00650-dt$V00748)/dt$V00650), digits = 1)
dt$alf5054 <- round(100*((dt$V00651-dt$V00748)/dt$V00651), digits = 1)
dt$alf5559 <- round(100*((dt$V00652-dt$V00748)/dt$V00652), digits = 1)
dt$alf6064 <- round(100*((dt$V00653-dt$V00748)/dt$V00653), digits = 1)
dt$alf6599 <- round(100*((dt$V06599-dt$V07599)/dt$V06599), digits = 1)

#Totais por cidade do Brasil

dt <- dt %>%
        mutate(Total = rowSums(select(., 3:15)))
dt <- dt %>%
        mutate(Alfabetizados = rowSums(select(., 16:28)))
dt <- dt %>% 
        mutate(NAlfabetizados = Total - Alfabetizados)
dt$TXAnalf <- round(100*((dt$Total-dt$Alfabetizados)/dt$Total), digits = 5)
#Taxa de Analfabetismo no Brasil por faixa etaria

TotBr1519 <- round(100*(sum(dt$V00644)-sum(dt$V00748))/sum(dt$V00644), digits = 1)
TotBr2024 <- round(100*(sum(dt$V00645)-sum(dt$V00749))/sum(dt$V00645), digits = 1)
TotBr2529 <- round(100*(sum(dt$V00646)-sum(dt$V00750))/sum(dt$V00646), digits = 1)
TotBr3034 <- round(100*(sum(dt$V00647)-sum(dt$V00751))/sum(dt$V00647), digits = 1)
TotBr3539 <- round(100*(sum(dt$V00648)-sum(dt$V00752))/sum(dt$V00648), digits = 1)
TotBr4044 <- round(100*(sum(dt$V00649)-sum(dt$V00753))/sum(dt$V00649), digits = 1)
TotBr4549 <- round(100*(sum(dt$V00650)-sum(dt$V00754))/sum(dt$V00650), digits = 1)
TotBr5054 <- round(100*(sum(dt$V00651)-sum(dt$V00755))/sum(dt$V00651), digits = 1)
TotBr5559 <- round(100*(sum(dt$V00652)-sum(dt$V00756))/sum(dt$V00652), digits = 1)
TotBr6064 <- round(100*(sum(dt$V00653)-sum(dt$V00757))/sum(dt$V00653), digits = 1)
TotBr6599 <- round(100*(sum(dt$V06599)-sum(dt$V07599))/sum(dt$V06599), digits = 1)
#TotBr6599 <- round(100*(sum(c(dt$V00654, dt$V00655, dt$V00656))-sum(c(dt$V00758, dt$V00759, dt$V00760)))/sum(c(dt$V00654, dt$V00655, dt$V00656)), digits = 1)
# Combinar todas as variáveis em uma lista para exibição
# Criar o data.frame
resultado <- data.frame(
        "15 a 19 anos" = TotBr1519,
        "20 a 24 anos" = TotBr2024,
        "25 a 29 anos" = TotBr2529,
        "30 a 34 anos" = TotBr3034,
        "35 a 39 anos" = TotBr3539,
        "40 a 44 anos" = TotBr4044,
        "45 a 49 anos" = TotBr4549,
        "50 a 54 anos" = TotBr5054,
        "55 a 59 anos" = TotBr5559,
        "60 a 64 anos" = TotBr6064,
        "65 ou mais"  = TotBr6599,
        row.names = "Censo 2022", # Define o nome da linha como 'Censo 2022'
        check.names = FALSE
)

# Exibir o resultado
htmlTable::htmlTable(resultado, caption = "Taxa de Não Alfabetizados")
Taxa de Não Alfabetizados
15 a 19 anos 20 a 24 anos 25 a 29 anos 30 a 34 anos 35 a 39 anos 40 a 44 anos 45 a 49 anos 50 a 54 anos 55 a 59 anos 60 a 64 anos 65 ou mais
Censo 2022 1.5 1.5 1.7 2.2 3.2 5 7 8.8 10.7 12.5 20.8

A Publicação do IBGE Com Resultados Relacionados a Alfabetização cujo link foi indicado no inicio deste texto apresenta o gráfico de barras abaixo.

Observe que nossos resultados do Censo 2022 diferem dos resultados apresentados no gráfico do IBGE apenas para as categorias 60 a 64 anos e 65 ou mais anos. Já relacionando os dados de 2010, observamos que a tabela nos apresenta categorias diferentes das apresentadas na imagem do IBGE, além disso, as que são iguais diferem nos resultados.

#url2 <- "~/GitHub/Censo2022/Dados/Tab1_1_1_2010.csv"
url2 <- "https://raw.githack.com/fsbmat-ufv/Censo2022/refs/heads/main/Dados/Tab1_1_1_2010.csv"

# Passo 1: Pegue o cabeçalho correto
colunas <- names(fread(url2, encoding = "Latin-1", sep = ";", header = TRUE, nrows = 1))

# Passo 2: Leia o arquivo, pulando as 6 primeiras linhas
dt2010 <- fread(url2, 
                encoding = "Latin-1", 
                sep = ";", 
                header = FALSE,
                dec = ",",
                skip = 7)

# Passo 3: Atribua os nomes de coluna corretos ao data.table
setnames(dt2010, colunas)
dt2010[, Idade := trimws(Idade)]
Tot10Br1519 <- round(100*dt2010[Idade == "15 a 19 anos", NuncaFreq]/dt2010[Idade == "15 a 19 anos", Total], digits = 2)
Tot10Br2024 <- round(100*dt2010[Idade == "20 a 24 anos", NuncaFreq]/dt2010[Idade == "20 a 24 anos", Total], digits = 2)
Tot10Br2529 <- round(100*dt2010[Idade == "25 a 29 anos", NuncaFreq]/dt2010[Idade == "25 a 29 anos", Total], digits = 2)
Tot10Br3039 <- round(100*dt2010[Idade == "30 a 39 anos", NuncaFreq]/dt2010[Idade == "30 a 39 anos", Total], digits = 2)
Tot10Br4049 <- round(100*dt2010[Idade == "40 a 49 anos", NuncaFreq]/dt2010[Idade == "40 a 49 anos", Total], digits = 2)
Tot10Br5059 <- round(100*dt2010[Idade == "50 a 59 anos", NuncaFreq]/dt2010[Idade == "50 a 59 anos", Total], digits = 2)
Tot10Br6099 <- round(100*dt2010[Idade == "60 anos ou mais", NuncaFreq]/dt2010[Idade == "60 anos ou mais", Total], digits = 2)

resultado2 <- data.frame(
        "15 a 19 anos" = Tot10Br1519,
        "20 a 24 anos" = Tot10Br2024,
        "25 a 29 anos" = Tot10Br2529,
        "30 a 39 anos" = Tot10Br3039,
        "40 a 49 anos" = Tot10Br4049,
        "50 a 59 anos" = Tot10Br5059,
        "60 ou mais anos" = Tot10Br6099,
        row.names = "Censo 2010", # Define o nome da linha como 'Censo 2022'
        check.names = FALSE
)

# Exibir o resultado
htmlTable::htmlTable(resultado2, caption = "Taxa de Não Alfabetizados")
Taxa de Não Alfabetizados
15 a 19 anos 20 a 24 anos 25 a 29 anos 30 a 39 anos 40 a 49 anos 50 a 59 anos 60 ou mais anos
Censo 2010 1.01 1.61 2.13 3.41 5.41 8.67 21.37

Observe que a taxa de 2010 na categoria de 15 a 19 anos é de 2,2 já a calculada a partir dos dados disponibilizados é de 1.01.

## Warning: pacote 'geobr' foi compilado no R versão 4.4.2
## Carregando namespace exigido: sf
## Warning: pacote 'sf' foi compilado no R versão 4.4.2
## Linking to GEOS 3.12.2, GDAL 3.9.3, PROJ 9.4.1; sf_use_s2() is TRUE
## Using year/date 2022
## Warning: pacote 'leaflet' foi compilado no R versão 4.4.2

Censo 2022